package org.qiyu.live.user.provider.dao.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Update;
import org.qiyu.live.user.provider.dao.po.UserTagPO;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: sfx
 * Date: 2023-09-22
 * Time: 23:31
 */
@Mapper
public interface IUserTagMapper extends BaseMapper<UserTagPO> {
    /**
     * 设置标签
     * 优化 : 用户没有标签才进行设置
     *
     * @param userId    用户id
     * @param filedName 字段
     * @param tag       tag标签
     * @return 返回是否设置标签成功
     */
    @Update("update t_user_tag set ${filedName} = ${filedName} | #{tag} where user_id = #{userId} and ${filedName} & #{tag} = 0 ")
    int setTag(Long userId, String filedName, long tag);

    /**
     * 取消标签
     * 已经设置过得标签才进行取消
     *
     * @param userId    用户id
     * @param filedName 字段
     * @param tag       tag标签
     * @return 返回是否取消标签成功
     */
    @Update("update t_user_tag set ${filedName} = ${filedName} &~ #{tag} where user_id = #{userId} and ${filedName} & #{tag} = #{tag}")
    int cancelTag(Long userId, String filedName, long tag);
}
